<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;

use EasyWeChat\Factory;


class Wechat1Controller extends Controller
{

    protected $config;
    protected $app;

    public function __construct()
    {

        $this->config = [
            'app_id' => 'wx6a4cd62f6b39a23f',
            'secret' => '676f2dc486d18ff6b2906a4782880a1e',



            // 下面为可选项
            // 指定 API 调用返回结果的类型：array(default)/collection/object/raw/自定义类名
            'response_type' => 'array',

//            'log' => [
//                'level' => 'debug',
//                'file' => __DIR__ . '/wechat.log',
//            ],
        ];
        $this->app = Factory::officialAccount($this->config);


    }


    /**
     * 获取已授权用户
     * @param $code
     * @return mixed
     */
    public function userFromCode($code){

        $token = $this->app->oauth->getAccessToken($code);
        // $user->getId();  // 对应微信的 OPENID
        // $user->getNickname(); // 对应微信的 nickname
        // $user->getName(); // 对应微信的 nickname
        // $user->getAvatar(); // 头像网址
        // $user->getOriginal(); // 原始API返回的结果
        // $user->getToken(); // access_token， 比如用于地址共享时使用
        $user = $this->app->oauth->user($token);


        return ['openid'=>$user->getId(),'nickname'=>$user->getNickname(),'Avatar'=>$user->getAvatar()];
    }

    public function getJsConfig(Request $request){


        $url = $request->url;

        $jsApiList = ["openLocation",
            "getLocation",
            'checkJsApi',
            'updateAppMessageShareData',
            'updateTimelineShareData',
            'chooseWXPay',
            'scanQRCode'];


        $this->app->jssdk->setUrl(base64_decode($url));
        $res = $this->app->jssdk->buildConfig($jsApiList, $debug = true, $beta = false, $json = true);

        return $this->success($res);
    }








    //发送订阅消息
//    public function send_msg($order_id,$tmp_id='GEr0hcIF0fbSLXFpdHWPtcQnelD6EMsBEx9YLAO4bOM'){
//        $order = Db::name('order')->find($order_id);
//        $user = Db::name('user')->find($order['user_id']);
//
//        if(!$user['openid']){
//            return;
//        }
//
//        $data = [
//            'template_id' => $tmp_id, // 所需下发的订阅模板id
//            'touser' => $user['openid'],     // 接收者（用户）的 openid
//            'page' => 'pages/orderRunning/orderRunning?orderid='.$order_id,       // 点击模板卡片后的跳转页面，仅限本小程序内的页面。支持带参数,（示例index?foo=bar）。该字段不填则模板无跳转。
//            //订单号
//            //{{character_string1.DATA}}
//            //
//            //类型
//            //{{thing12.DATA}}
//            //
//            //订单金额
//            //{{amount10.DATA}}
//            //
//            //完成时间
//            //{{time4.DATA}}
//            'data' => [         // 模板内容，格式形如 { "key1": { "value": any }, "key2": { "value": any } }
//                'character_string1' => [
//                    'value' => $order['order_num'],
//                ],
//                'thing12' => [
//                    'value' => $order['command_name'],
//                ],
//                'amount10' => [
//                    'value' => $order['money'],
//                ],
//                'time4' => [
//                    'value' => date("Y-m-d H:i:s",time()),
//                ],
//            ],
//            //跳转小程序类型：developer为开发版；trial为体验版；formal为正式版；默认为正式版
//            'miniprogram_state' => 'trial'
//        ];
//
//        $this->app->subscribe_message->send($data);
//    }
}
